﻿using System;
using System.Collections.Generic;
using System.Windows;
using System.Linq;
using Ewk.MachineLearning.Genetic.Programming.Engine;
using Ewk.MachineLearning.Genetic.Programming.Fitness;
using Ewk.MachineLearning.Genetic.Programming.Program.Functions;
using Ewk.MachineLearning.Genetic.Programming.Program.Terminals;

namespace Ewk.MachineLearning.Genetic.Programming.UI
{
    /// <summary>
    /// Interaction logic for MainWindow.xaml
    /// </summary>
    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();

            var exemplar = new Exemplar(new List<dynamic>(), 1);
            var function = new Function(objects => objects.Aggregate((o1, o2) => o1 + o2),
                                        new List<IODefinition>(),
                                        new IODefinition(new List<Type> {typeof (int)}));

            var variable = new Variable(typeof (int), "X");
            var constant = new Constant(2, typeof (int));

            var problemDefinition = new ProblemDefinition(new List<Exemplar> {exemplar},
                                                          new List<Variable> {variable},
                                                          new StatisticFitness());

            var functionFactory = new FunctionFactory();

            //Programming.Program.Functions.
        }
    }
}
